#pragma once

PBBIMCOREMODEL_TYPEDEFS(%Class%)

BEGIN_PBBIM_COREMODEL_NAMESPACE
/*=================================================================================**//**
* @bsiclass                                     Y.Dong                        %CreateTime%
+===============+===============+===============+===============+===============+======*/

class %Class%
{
private:
    %VarsFunctionDeclare%

public:
    PBBIMCOREMODEL_EXPORT %Class%();
    PBBIMCOREMODEL_EXPORT %Class%(BentleyApi::ECN::IECInstanceCR instance);
    PBBIMCOREMODEL_EXPORT virtual ~%Class%();

    PBBIMCOREMODEL_EXPORT StatusInt    CopyDataToInstance(BentleyApi::ECN::IECInstanceR instance, DgnProjectR project) const;
    PBBIMCOREMODEL_EXPORT StatusInt    InitFromInstance(BentleyApi::ECN::IECInstanceCR instance) ;

    PBBIMCOREMODEL_EXPORT %Class%& operator= (const %Class%& val);

    %VarsFunctionGetSetInc%

    PBBIMCOREMODEL_CREATE(%Class%);
};

PBBIMCOREMODEL_EXTENSION(%Class%);

END_PBBIM_COREMODEL_NAMESPACE
